package com.ease.core.events {

	import com.ease.core.components.DockingView;
	import com.ease.core.components.ViewTab;
	import com.ease.core.components.ViewWindow;

	import flash.events.Event;

	public class DockingEvent extends Event {
		// prefix
		private static const PREFIX:String = "view.";
		//
		public static const ADDING:String = PREFIX + "adding";

		public static const ADDED:String = PREFIX + "added";

		public static const REMOVING:String = PREFIX + "removing";

		public static const REMOVED:String = PREFIX + "removed";

		public static const CLOSING:String = PREFIX + "closing";

		public static const CLOSED:String = PREFIX + "closed";

      public static const FOCUSING:String = PREFIX + "focusing";

		public static const FOCUSED:String = PREFIX + "focused";

		public static const UNFOCUSING:String = PREFIX + "unfocusing";

		public static const UNFOCUSED:String = PREFIX + "unfocused";

		public static const DOCKING:String = PREFIX + "docking";

		public static const DOCKED:String = PREFIX + "docked";

		public static const MINIMIZE:String = PREFIX + "minimize";

		public static const MAXIMIZE:String = PREFIX + "maximize";

		public static const RESTORE:String = PREFIX + "restore";

		private var _viewTab:ViewTab = null;
		private var _viewWindow:ViewWindow = null;
      private var _view:DockingView = null;

		public function DockingEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = false) {
			super(type, bubbles, cancelable);
		}

		override public function clone():Event {
			return new DockingEvent(type, bubbles, cancelable);
		}

		public function get viewTab():ViewTab {
			return this._viewTab;
		}

		public function set viewTab(value:ViewTab):void {
			this._viewTab=value;
		}

      public function get view():DockingView {
         return this._view;
      }

      public function set view(value:DockingView):void {
         this._view=value;
      }

		public function get viewWindow():ViewWindow {
			return this._viewWindow;
		}

		public function set viewWindow(value:ViewWindow):void {
			this._viewWindow=value;
		}
	}
}
